package com.levy;

import com.levy.utils.StringUtils1;

import java.io.*;
import java.util.Scanner;

/**
 * Created by levy on 2018/6/6.
 */
public class ddd {

    /**
     * 判断字符串是否全为数字
     * @param str
     * @return
     */
    public static boolean isNumeric(String str){
        for (int i = str.length();--i>=0;){
            char c = str.charAt(i);
            if (!Character.isDigit(c)){
                return false;
            }
        }
        return true;
    }

    /**
     * 方法描述：字符串数据模糊化处理方法
     *
     * @param fuzzyType 模糊化处理类型
     * @param str 字符串数据内容
     * @return 模糊化处理后的字符串数据内容
     */
    public static String fuzzyStrValue(String fuzzyType, String str)
    {
        // 如果为空，则原样返回
        if (StringUtils1.isBlank(str))
        {
            return str;
        }

        int strLength = str.length();
        int fuzzyLength = (int)Math.ceil(strLength / 3.00);
        StringBuilder strBuf = new StringBuilder(strLength);

        // 如果是左侧部分模糊
        if ("2".equals(fuzzyType))
        {
            for (int i = 0; i < fuzzyLength; i++)
            {
                strBuf.append("*");
            }

            if (fuzzyLength < strLength)
            {
                strBuf.append(str.substring(fuzzyLength, strLength));
            }
        }
        else if ("3".equals(fuzzyType))
        {
            // 如果是中间部分模糊
            int start = (strLength - fuzzyLength) / 2;
            if (start > 0)
            {
                strBuf.append(str.substring(0, start));
            }

            for (int i = 0; i < fuzzyLength; i++)
            {
                strBuf.append("*");
            }

            if ((start + fuzzyLength) < strLength)
            {
                strBuf.append(str.substring((start + fuzzyLength), strLength));
            }
        }
        else if ("4".equals(fuzzyType))
        {
            // 如果是右侧部分模糊
            if ((strLength - fuzzyLength) > 0)
            {
                strBuf.append(str.substring(0, (strLength - fuzzyLength)));
            }
            for (int i = 0; i < fuzzyLength; i++)
            {
                strBuf.append("*");
            }
        }
        else if ("5".equals(fuzzyType))
        {
            // 如果是全部模糊
            for (int i = 0; i < strLength; i++)
            {
                strBuf.append("*");
            }
        }
        else
        {
            strBuf.append(str);
        }
        return strBuf.toString();
    }

    public static void main(String[] args) throws IOException {
        String property = System.getProperty("line.separator");
        System.out.println(property);
    }
}
